package com.itheima.dao;

import com.itheima.pojo.Menu;

import java.util.List;
import java.util.Map;
import com.github.pagehelper.Page;
import com.itheima.pojo.Menu;
import java.util.List;

/**
 * 项目实战--菜单列表
 * @author zhengjd
 * @date 2020/4/17 17:17
 */
public interface MenuDao {

    /**
     * 获取对应用户所拥有的一级菜单
     * @param username
     * @return
     */
    List<Menu> getMenuLevel1ByUsername(String username);

    /**
     * 获取指定用户一级菜单的子菜单
     * @param map
     * @return
     */
    List<Menu> getChildrenMenuList(Map<String, Object> map);

    Page<Menu> selectByCondition(String queryString);

    Page<Menu> selectByCondition2(String queryString);

    List<Menu> findAllParentMenu();

    Integer findNewPathNumber();

    List<Menu> findAllMenuByParentMenuId(Integer parentMenuId);

    Menu findParentMenuByParentMenuId(Integer parentMenuId);

    void addNewMenu(Menu menu);

    void editPathAndPriority(Menu menuChild);

    Menu findMenuById(Integer menuId);

    void deleteMenuById(Integer id);

    void simpleEditMenu(Menu menu);

    Integer findCountMenuAndRoleByMenuId(Integer id);

    Long searchRealTotalParentMenuNumber(String queryString);

    Long searchRealTotalChildMenuNumber(String queryString);

    void diffcultEditMenu(Menu menu);

    /**
     * 查询所有菜单项
     * @return
     */
    List<Menu> findAll();

    /**
     * 添加一级菜单
     * @param menu
     */
    void addLevel1Menu(Menu menu);

    List<Menu> findAllParentWithChild();
}
